﻿using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using Fachada;
using ObjetoNegocio;

namespace CIRS.Algoritmos
{
    /// <summary>
    /// Interaction logic for UcCadastrarAlgoritmo.xaml
    /// </summary>
    public partial class UcCadastrarAlgoritmo : UserControl
    {
        public UcCadastrarAlgoritmo()
        {
            InitializeComponent();
            dgAtributos.ItemsSource = Fachada.ListarAtributosPorFiltro(new Atributo());
            atributos = new List<Atributo>();
        }

        private List<Atributo> atributos;

        private IFachada _fachada;
        public IFachada Fachada
        {
            get
            {
                if (_fachada == null)
                {
                    _fachada = new Fachada.Fachada();
                }
                return _fachada;
            }
        }

        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count > 0 && e.AddedItems[0] is Valor)
            {
                var atributo = (sender as ComboBox).Tag as Atributo;
                AdicionarAtributo(atributo, e.AddedItems[0] as Valor);
            }
        }

        private void AdicionarAtributo(Atributo atributo, Valor valor)
        {
            if (atributo != null)
            {
                var items = atributos.FindAll(item => item.Codigo == atributo.Codigo);
                if (items.Count == 0)
                {
                    var temp = new Atributo
                    {
                        Codigo = atributo.Codigo,
                        Descricao = atributo.Descricao,
                        Nome = atributo.Nome,
                        Valores = new List<Valor> { valor }
                    };
                    atributos.Add(temp);
                }
                else
                {
                    items[0].Valores.Clear();
                    items[0].Valores.Add(valor);

                }
            }
        }

        private void btnCadastrar_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            if(!string.IsNullOrEmpty(txtNome.Text) && !string.IsNullOrEmpty(txtDescricao.Text))
            {
                var algoritmo = new Algoritmo {Atributos = atributos, Descricao = txtDescricao.Text, Nome = txtNome.Text};
                Fachada.CadastrarAlgoritmo(algoritmo);
            }
        }
    }
}